import java.io.*;

public final class z
{

    private bs m[];
    private short n[];
    private boolean o;
    public Object a;
    public String b;
    public int c[];
    public long d[];
    public String e[];
    public byte f[];
    public int g[];
    public long h[];
    public Object i[];
    public String j[];
    public boolean k;
    public boolean l;

    public z a(String s)
    {
        z z1;
        (z1 = new z()).b = s;
        z1.c = c;
        z1.d = d;
        z1.e = e;
        z1.m = bs.a(z1, m);
        z1.f = f;
        z1.j = j;
        z1.n = n;
        z1.g = new int[g.length];
        z1.h = new long[h.length];
        z1.i = new Object[i.length];
        z1.k = k;
        return z1;
    }

    public void a(byte abyte0[])
    {
        if(abyte0 != null && !l)
            a(((InputStream) (new ByteArrayInputStream(abyte0))));
    }

    public void a(InputStream inputstream)
    {
        try
        {
            DataInputStream datainputstream;
            int i1;
            String as[] = new String[i1 = (datainputstream = new DataInputStream(inputstream)).readInt()];
            for(int j1 = 0; j1 < i1; j1++)
                as[j1] = datainputstream.readUTF();

            j = as;
            return;
        }
        catch(IOException ioexception)
        {
            ce.c("strings:" + ioexception);
        }
        j = null;
    }

    public boolean a()
    {
        try{
        boolean flag = o;
        o = true;
        return flag;
        }catch(Exception exception){
            o = true;
        }
        throw new RuntimeException();
    }

    public int a(int i1)
    {
        short aword0[];
        if((aword0 = n) == null)
            return -1;
        int j1;
        if((j1 = aword0.length) > 0)
        {
            if(i1 >= aword0[j1 - 2])
                return aword0[j1 - 1];
            for(int k1 = j1 - 4; k1 >= 0; k1 -= 2)
                if(aword0[k1] <= i1 && i1 < aword0[k1 + 2])
                    return aword0[k1 + 1];

        }
        return -1;
    }

    public bs b(String s)
    {
        bs abs[] = m;
        for(int i1 = 0; i1 < abs.length; i1++)
            if(abs[i1].e.equals(s))
                return abs[i1];

        return null;
    }

    public bs b(int i1)
    {
        return m[i1];
    }

    public static z a(String s, byte abyte0[]) throws IOException
    {
        return a(s, ((InputStream) (new ByteArrayInputStream(abyte0))));
    }

    public static z a(String s, InputStream inputstream) throws IOException
    {
        return a(new DataInputStream(inputstream));
    }

    private static z a(DataInputStream datainputstream) throws IOException {
		if (datainputstream.readUnsignedShort() != 59628)
			throw new IOException("Corrupted package");

		z z1 = new z();
		int i1 = datainputstream.readUnsignedByte();
		z1.g = new int[datainputstream.readUnsignedByte()];
		z1.h = new long[datainputstream.readUnsignedByte()];
		z1.i = new Object[datainputstream.readUnsignedByte()];

		if (i1 >= 3) {
			int ai[] = new int[datainputstream.readUnsignedShort()];
			int j1 = 0;
			for (int l1 = ai.length; j1 < l1; j1++)
				ai[j1] = datainputstream.readInt();

			long al[] = new long[datainputstream.readUnsignedShort()];
			int i2 = 0;
			for (int i3 = al.length; i2 < i3; i2++)
				al[i2] = datainputstream.readLong();

			String as[] = new String[datainputstream.readUnsignedShort()];
			int j3 = 0;
			for (int k3 = as.length; j3 < k3; j3++)
				as[j3] = datainputstream.readUTF();

			z1.c = ai;
			z1.d = al;
			z1.e = as;
		} else {
			throw new IOException("invalid cpool");
		}
		
        Object aobj[] = new bs[datainputstream.readUnsignedShort()];
		int k1 = 0;
		for (int j2 = aobj.length; k1 < j2; k1++)
			aobj[k1] = new bs(z1, datainputstream.readUTF(), datainputstream
					.readUnsignedShort(), datainputstream.readUnsignedByte());

		z1.m = ((bs[]) (aobj));
		z1.f = new byte[datainputstream.readUnsignedShort()];
		datainputstream.readFully(z1.f);
		if (i1 > 1) {
			aobj = new String[datainputstream.readUnsignedShort()];
			k1 = 0;
			for (int k2 = aobj.length; k1 < k2; k1++)
				aobj[k1] = datainputstream.readUTF();

			z1.j = ((String[]) (aobj));
		}

		short[] saobj = new short[datainputstream.readUnsignedShort()];
		k1 = 0;
		for (int l2 = aobj.length; k1 < l2; k1++)
			saobj[k1] = datainputstream.readShort();

		z1.n = ((short[]) (saobj));
		if (i1 > 3)
			z1.k = datainputstream.readBoolean();
		return z1;
	}
}